<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::BOWTrainer Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html">BOWTrainer</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pro-attribs">Protected Attributes</a> |
<a href="../../da/d1d/classcv_1_1BOWTrainer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::BOWTrainer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="../../da/d9b/group__features2d.html">2D Features Framework</a> » <a class="el" href="../../de/d24/group__features2d__category.html">Object Categorization</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Abstract base class for training the <em>bag of visual words</em> vocabulary from a set of descriptors.  
 <a href="../../d5/d14/classcv_1_1BOWTrainer.html#details">More...</a></p>
<p><code>#include &lt;opencv2/features2d.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cv::BOWTrainer:</div>
<div class="dyncontent">
 <div class="center">
  <img alt="" src="../../d5/d14/classcv_1_1BOWTrainer.png" usemap="#cv::BOWTrainer_map"/>
  <map id="cv::BOWTrainer_map" name="cv::BOWTrainer_map">
<area alt="cv::BOWKMeansTrainer" coords="0,56,148,80" href="../../d4/d72/classcv_1_1BOWKMeansTrainer.html" shape="rect" title="kmeans -based class to train visual vocabulary using the bag of visual words approach. : "/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af02c83dd5e72f5b3b7b78af818b4c80d"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#af02c83dd5e72f5b3b7b78af818b4c80d">BOWTrainer</a> ()</td></tr>
<tr class="separator:af02c83dd5e72f5b3b7b78af818b4c80d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8ea0d25f629cad8ffa38fac6048adab5"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a8ea0d25f629cad8ffa38fac6048adab5">~BOWTrainer</a> ()</td></tr>
<tr class="separator:a8ea0d25f629cad8ffa38fac6048adab5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a84a70df7f06e7339408f36eb040914ea"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a84a70df7f06e7339408f36eb040914ea">add</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;<a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a2a447f969feed258bd3cdfc521bc9502">descriptors</a>)</td></tr>
<tr class="memdesc:a84a70df7f06e7339408f36eb040914ea"><td class="mdescLeft"> </td><td class="mdescRight">Adds descriptors to a training set.  <a href="#a84a70df7f06e7339408f36eb040914ea">More...</a><br/></td></tr>
<tr class="separator:a84a70df7f06e7339408f36eb040914ea"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a54968befe8957d2691fc8e492aeea72c"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a54968befe8957d2691fc8e492aeea72c">clear</a> ()</td></tr>
<tr class="separator:a54968befe8957d2691fc8e492aeea72c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abbd3b3cb63690fa7128db1a1fcb84eab"><td align="right" class="memItemLeft" valign="top">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#abbd3b3cb63690fa7128db1a1fcb84eab">cluster</a> () const =0</td></tr>
<tr class="separator:abbd3b3cb63690fa7128db1a1fcb84eab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab869df2d888741c37e33c06eee8d54dc"><td align="right" class="memItemLeft" valign="top">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#ab869df2d888741c37e33c06eee8d54dc">cluster</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;<a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a2a447f969feed258bd3cdfc521bc9502">descriptors</a>) const =0</td></tr>
<tr class="memdesc:ab869df2d888741c37e33c06eee8d54dc"><td class="mdescLeft"> </td><td class="mdescRight">Clusters train descriptors.  <a href="#ab869df2d888741c37e33c06eee8d54dc">More...</a><br/></td></tr>
<tr class="separator:ab869df2d888741c37e33c06eee8d54dc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3336e4c738c273482d1bf2cc2b6b5829"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a3336e4c738c273482d1bf2cc2b6b5829">descriptorsCount</a> () const</td></tr>
<tr class="memdesc:a3336e4c738c273482d1bf2cc2b6b5829"><td class="mdescLeft"> </td><td class="mdescRight">Returns the count of all descriptors stored in the training set.  <a href="#a3336e4c738c273482d1bf2cc2b6b5829">More...</a><br/></td></tr>
<tr class="separator:a3336e4c738c273482d1bf2cc2b6b5829"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ade701ea5056380d950a4dfd1c3f7f3fa"><td align="right" class="memItemLeft" valign="top">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#ade701ea5056380d950a4dfd1c3f7f3fa">getDescriptors</a> () const</td></tr>
<tr class="memdesc:ade701ea5056380d950a4dfd1c3f7f3fa"><td class="mdescLeft"> </td><td class="mdescRight">Returns a training set of descriptors.  <a href="#ade701ea5056380d950a4dfd1c3f7f3fa">More...</a><br/></td></tr>
<tr class="separator:ade701ea5056380d950a4dfd1c3f7f3fa"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a2a447f969feed258bd3cdfc521bc9502"><td align="right" class="memItemLeft" valign="top">std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a2a447f969feed258bd3cdfc521bc9502">descriptors</a></td></tr>
<tr class="separator:a2a447f969feed258bd3cdfc521bc9502"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0aa1b9d10cb5790c13977c7ef3d60589"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d14/classcv_1_1BOWTrainer.html#a0aa1b9d10cb5790c13977c7ef3d60589">size</a></td></tr>
<tr class="separator:a0aa1b9d10cb5790c13977c7ef3d60589"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract base class for training the <em>bag of visual words</em> vocabulary from a set of descriptors. </p>
<p>For details, see, for example, <em>Visual Categorization with Bags of Keypoints</em> by Gabriella Csurka, Christopher R. Dance, Lixin Fan, Jutta Willamowski, Cedric Bray, 2004. : </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af02c83dd5e72f5b3b7b78af818b4c80d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af02c83dd5e72f5b3b7b78af818b4c80d">◆ </a></span>BOWTrainer()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::BOWTrainer::BOWTrainer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a8ea0d25f629cad8ffa38fac6048adab5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ea0d25f629cad8ffa38fac6048adab5">◆ </a></span>~BOWTrainer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::BOWTrainer::~BOWTrainer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a84a70df7f06e7339408f36eb040914ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84a70df7f06e7339408f36eb040914ea">◆ </a></span>add()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::BOWTrainer::add </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp; </td>
          <td class="paramname"><em>descriptors</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.BOWTrainer.add(</td><td class="paramname">descriptors</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Adds descriptors to a training set. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">descriptors</td><td>Descriptors to add to a training set. Each row of the descriptors matrix is a descriptor.</td></tr>
  </table>
  </dd>
</dl>
<p>The training set is clustered using clustermethod to construct the vocabulary. </p>
</div>
</div>
<a id="a54968befe8957d2691fc8e492aeea72c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54968befe8957d2691fc8e492aeea72c">◆ </a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::BOWTrainer::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.BOWTrainer.clear(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="abbd3b3cb63690fa7128db1a1fcb84eab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbd3b3cb63690fa7128db1a1fcb84eab">◆ </a></span>cluster() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> cv::BOWTrainer::cluster </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.cluster(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.cluster(</td><td class="paramname">descriptors</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
<p>Implemented in <a class="el" href="../../d4/d72/classcv_1_1BOWKMeansTrainer.html#a489bdcbdbc8f1d470683e3c375b1a4df">cv::BOWKMeansTrainer</a>.</p>
</div>
</div>
<a id="ab869df2d888741c37e33c06eee8d54dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab869df2d888741c37e33c06eee8d54dc">◆ </a></span>cluster() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> cv::BOWTrainer::cluster </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp; </td>
          <td class="paramname"><em>descriptors</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.cluster(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.cluster(</td><td class="paramname">descriptors</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Clusters train descriptors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">descriptors</td><td>Descriptors to cluster. Each row of the descriptors matrix is a descriptor. Descriptors are not added to the inner train descriptor set.</td></tr>
  </table>
  </dd>
</dl>
<p>The vocabulary consists of cluster centers. So, this method returns the vocabulary. In the first variant of the method, train descriptors stored in the object are clustered. In the second variant, input descriptors are clustered. </p>
<p>Implemented in <a class="el" href="../../d4/d72/classcv_1_1BOWKMeansTrainer.html#a0ac921f4781724dbd4b2ce06e34c304f">cv::BOWKMeansTrainer</a>.</p>
</div>
</div>
<a id="a3336e4c738c273482d1bf2cc2b6b5829"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3336e4c738c273482d1bf2cc2b6b5829">◆ </a></span>descriptorsCount()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::BOWTrainer::descriptorsCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.descriptorsCount(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns the count of all descriptors stored in the training set. </p>
</div>
</div>
<a id="ade701ea5056380d950a4dfd1c3f7f3fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade701ea5056380d950a4dfd1c3f7f3fa">◆ </a></span>getDescriptors()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt;<a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a>&gt;&amp; cv::BOWTrainer::getDescriptors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.BOWTrainer.getDescriptors(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns a training set of descriptors. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a2a447f969feed258bd3cdfc521bc9502"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a447f969feed258bd3cdfc521bc9502">◆ </a></span>descriptors</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a>&gt; cv::BOWTrainer::descriptors</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a0aa1b9d10cb5790c13977c7ef3d60589"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0aa1b9d10cb5790c13977c7ef3d60589">◆ </a></span>size</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::BOWTrainer::size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/<a class="el" href="../../d5/d0d/features2d_8hpp.html">features2d.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:42 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
